home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 2 / AACD 2.iso / AACD / Utilities / AmiMirror / Developer / prefs / source / StartEnd.h < prev    next >
Encoding:
Text File  |  1999-08-04  |  3.7 KB  |  100 lines

  1.  
  2. ///¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ <
  3. ///
  4. // Realise all system resources allocated at start
  5.  
  6. void Free (void)
  7. {
  8.   if (PatList)
  9.     FreePatList (PatList);
  10.   if (xw_mcc)
  11.     MUI_DeleteCustomClass (xw_mcc);
  12.   if (mw_mcc)
  13.     MUI_DeleteCustomClass (mw_mcc);
  14.   if (MUIMasterBase)
  15.     CloseLibrary (MUIMasterBase);
  16.   if (ReqToolsBase)
  17.     CloseLibrary (ReqToolsBase);
  18.   if (IdentifyBase)
  19.     CloseLibrary (IdentifyBase);
  20.   if (LocaleBase)
  21.     {
  22.       CloseCatalog (catalog);
  23.       CloseLibrary (LocaleBase);
  24.     }
  25.   if (XpkBase)
  26.     {
  27.       if (XM)
  28.         XpkFreeObject (XPKOBJ_MODE, XM);
  29.       if (XI)
  30.         XpkFreeObject (XPKOBJ_PACKERINFO, XI);
  31.       if (XL)
  32.         XpkFreeObject (XPKOBJ_PACKERLIST, XL);
  33.       CloseLibrary (XpkBase);
  34.     }
  35.   if (IntuitionBase)
  36.     CloseLibrary (IntuitionBase);
  37. }
  38. ///¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ <
  39. ///
  40. // Allocate all needed system resources and initialize all work data
  41.  
  42. BOOL Init (void)
  43. {
  44.   LONG count;
  45.  
  46.   if (IntuitionBase = OpenLibrary (INTUITION_LIBRARY_NAME, INTUITION_LIBRARY_VERSION))
  47.     {
  48.       if (XpkBase = OpenLibrary (XPK_LIBRARY_NAME, XPK_LIBRARY_VERSION))
  49.         {
  50.           if (LocaleBase = OpenLibrary (LOCALE_LIBRARY_NAME, LOCALE_LIBRARY_VERSION))
  51.             {
  52.               if (catalog = OpenCatalog (NULL, GETMES(CATALOG_NAME), OC_Version, CATALOG_LAST_VERSION, OC_BuiltInLanguage, GETMES(BUILTIN_LANGUAGE), TAG_DONE))
  53.                 {
  54.                   for (count = PROG_COPYRIGHT; count < FINISH; count++)
  55.                     messages[count] = GetCatalogStr (catalog, count, GETMES(count));
  56.                 }
  57.             }
  58.           if (IdentifyBase = OpenLibrary (ID_LIBRARY_NAME, ID_LIBRARY_VERSION))
  59.             {
  60.               if (ReqToolsBase = OpenLibrary (REQ_LIBRARY_NAME, REQ_LIBRARY_VERSION))
  61.                 {
  62.                   if (MUIMasterBase = OpenLibrary (MUI_LIBRARY_NAME, MUI_LIBRARY_VERSION))
  63.                     {
  64.                       if (mw_mcc = MUI_CreateCustomClass (NULL, MUIC_Window, NULL, sizeof(struct MWData), (APTR)MainWinDispatcher))
  65.                         {
  66.                           if (xw_mcc = MUI_CreateCustomClass (NULL, MUIC_Window, NULL, sizeof(struct XWData), (APTR)XpkWinDispatcher))
  67.                             {
  68.                               FillIt (FunctionName, PatternMode, StorageMode, StorageMethod, PerformCheck, NULL);
  69.                              if (PatList = AllocVec (sizeof(struct List), MEMF_PUBLIC))
  70.                                {
  71.                                  NewList (PatList);
  72.                                  if (LoadSets(DEF_ENV_FILE, PatList))
  73.                                    return (ALL_RIGHT);
  74.                                }
  75.                              else
  76.                                MakeRequest (REQ_TITLE_ERROR, OUT_MEM, EXIT_BUT, NULL);
  77.                             }
  78.                           else
  79.                             MakeRequest (REQ_TITLE_ERROR, CC_PROBLEM, EXIT_BUT, NULL);
  80.                         }
  81.                       else
  82.                         MakeRequest (REQ_TITLE_ERROR, CC_PROBLEM, EXIT_BUT, NULL);
  83.                     }
  84.                   else
  85.                     MakeRequest (REQ_TITLE_ERROR, LIBRARY_PROBLEM, EXIT_BUT, MUI_LIBRARY_NAME, MUI_LIBRARY_VERSION);
  86.                 }
  87.               else
  88.                 MakeRequest (REQ_TITLE_ERROR, LIBRARY_PROBLEM, EXIT_BUT, REQ_LIBRARY_NAME, REQ_LIBRARY_VERSION);
  89.             }
  90.           else
  91.             MakeRequest (REQ_TITLE_ERROR, LIBRARY_PROBLEM, EXIT_BUT, ID_LIBRARY_NAME, ID_LIBRARY_VERSION);
  92.         }
  93.       else
  94.         MakeRequest (REQ_TITLE_ERROR, LIBRARY_PROBLEM, EXIT_BUT, XPK_LIBRARY_NAME, XPK_LIBRARY_VERSION);
  95.     }
  96.   else
  97.     Alert (AT_DeadEnd | AN_ExecLib | AG_OpenLib | AO_Intuition);
  98.   return (GAME_OVER);
  99. }
  100.